import { useIntersectionObserver } from '@vueuse/core/index'

// 定义懒加载指令插件
export const lazyDirective = {
  install(app) {
    // 定义全局指令
    app.directive('img-lazy', {
      // el: 指令绑定的那个元素
      // binding: binding.value 指令等于号后面绑定的表达式的值
      mounted(el, binding) {
        const { stop } = useIntersectionObserver(el, ([{ isIntersecting }]) => {
          // 图片进入区域
          if (isIntersecting) {
            el.src = binding.value
            // 停止监听，避免重复监听
            stop()
          }
        })
      }
    })
  }
}
